In many scenarios, data packets sent and/or received by end-users need to be processed by multiple services running in the service provider (SP) infrastructure. The mechanism that allows the flow of data packets to be processed by a pre-selected set of service(s) is referred to as service or services chaining. For example, data packets sent/received by a client (X) may need to be processed first by a Deep Packet Inspection (DPI) application then examined by another service in charge of parental control or policy, and followed by Network Address Translation (NAT) before exiting the SP network. In such a scenario, it is necessary that data packets be processed in a sequential order by the three different services.
Accordingly, services chaining may be required if the traffic needs to go through more than one inline service. Moreover, if more than one chain of services is possible, the operator needs to configure the networking infrastructure to direct the right traffic through the right inline service path.